<html manifest=node.manifest>
<head>
  <meta charset="utf-8">
  <title>Mixly Handbit Arduino</title>
  <script type="text/javascript" src="../../blockly_compressed.js"></script>
  <script type="text/javascript" src="../../core/variables.js"></script>
  <script type="text/javascript" src="../../core/procedures.js"></script>
  <script type="text/javascript" src="../../core/blockly.js"></script>
  <script type="text/javascript" src="../../core/events.js"></script>
  <script type="text/javascript" src="../../core/field_textarea.js"></script>
  <script type="text/javascript" src="../../arduino.js"></script>
  <script type="text/javascript" src="company_pin.js"></script>
  <script type="text/javascript" src="js/drag.js"></script>
  <script type="text/javascript" src="js/code.js"></script>
  <script type="text/javascript" src="digitalPinToInterrupt.js"></script>
  <script type="text/javascript" src="js/Blob.js"></script>
  <script type="text/javascript" src="spin.js"></script>
  <script type="text/javascript" src="js/FileSaver.min.js"></script>
  <script type="text/javascript" src="js/blockly_helper.js"></script>
  <script type="text/javascript" src="jquery-1.11.3.min.js"></script>
  <script src="js/lib/ace/ace.js" type="application/javascript"></script>
  <script src="js/lib/ace/ext-language_tools.js" type="application/javascript"></script>
  <script type="text/javascript" src="myblock.js"></script>
  <script type="text/javascript" src="../../generators/arduino/factory.js"></script>
  <script type="text/javascript" src="../../generators/arduino/blynk.js"></script>
  <script type="text/javascript" src="../../generators/arduino/pins.js"></script>
  <script type="text/javascript" src="../../generators/arduino/inout.js"></script>
  <script type="text/javascript" src="../../generators/arduino/control.js"></script>
  <script type="text/javascript" src="../../generators/arduino/math.js"></script>
  <script type="text/javascript" src="../../generators/arduino/text.js"></script>
  <script type="text/javascript" src="../../generators/arduino/lists.js"></script>
  <script type="text/javascript" src="../../generators/arduino/logic.js"></script>
  <script type="text/javascript" src="../../generators/arduino/display.js"></script>
  <script type="text/javascript" src="../../generators/arduino/communicate.js"></script>
  <script type="text/javascript" src="../../generators/arduino/storage.js"></script>
  <script type="text/javascript" src="../../generators/arduino/sensor.js"></script>
  <script type="text/javascript" src="../../generators/arduino/ethernet.js"></script>
  <script type="text/javascript" src="../../generators/arduino/variables.js"></script>
  <script type="text/javascript" src="../../generators/arduino/procedures.js"></script>
  <script type="text/javascript" src="../../generators/arduino/serial.js"></script>
  <script type="text/javascript" src="../../generators/arduino/actuator.js"></script>
  <script type="text/javascript" src="../../generators/arduino/esp32/ethernet.js"></script>
  <script type="text/javascript" src="../../generators/arduino/esp32/pins.js"></script>
  <script type="text/javascript" src="../../generators/arduino/esp32/inout.js"></script>
  <script type="text/javascript" src="../../generators/arduino/esp32/control.js"></script>
  <script type="text/javascript" src="../../generators/arduino/esp32/math.js"></script>
  <script type="text/javascript" src="../../generators/arduino/esp32/text.js"></script>
  <script type="text/javascript" src="../../generators/arduino/esp32/lists.js"></script>
  <script type="text/javascript" src="../../generators/arduino/esp32/logic.js"></script>
  <script type="text/javascript" src="../../generators/arduino/esp32/communicate.js"></script>
  <script type="text/javascript" src="../../generators/arduino/esp32/storage.js"></script>
  <script type="text/javascript" src="../../generators/arduino/esp32/sensor.js"></script>
  <script type="text/javascript" src="../../generators/arduino/esp32/variables.js"></script>
  <script type="text/javascript" src="../../generators/arduino/esp32/procedures.js"></script>
  <script type="text/javascript" src="../../generators/arduino/esp32/serial.js"></script>
  <script type="text/javascript" src="../../generators/arduino/esp32/actuator.js"></script>
  <script type="text/javascript" src="../../generators/arduino/esp32/MixGo.js"></script>
  <script type="text/javascript" src="../../generators/arduino/esp32/Handbit.js"></script>
  <script type="text/javascript" src="../../generators/arduino/tools.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/blynk.js"></script> 
  <script type="text/javascript" src="../../blocks/arduino/factory.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/pins.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/inout.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/control.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/math.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/text.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/lists.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/logic.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/display.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/communicate.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/storage.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/sensor.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/ethernet.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/variables.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/procedures.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/serial.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/actuator.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/esp32/actuator.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/esp32/pins.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/esp32/inout.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/esp32/control.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/esp32/math.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/esp32/text.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/esp32/lists.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/esp32/logic.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/esp32/communicate.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/esp32/storage.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/esp32/sensor.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/esp32/ethernet.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/esp32/variables.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/esp32/procedures.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/esp32/serial.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/esp32/display.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/esp32/Handbit.js"></script>
  <script type="text/javascript" src="../../blocks/arduino/tools.js"></script>
  <script src="init.js"></script>
  <link rel="stylesheet" type="text/css" href="css/color_esp32_arduino_advance.css" />
  <link rel="stylesheet" type="text/css" href="css/ACEfont.css" />
</head>
<body onload="init()">
  <table height="100%" width="100%" id="table_whole">
    <tr>
      <td colspan=3>
        <table width="100%">
          <tr id="tabRow" height="1em">
            <td style="vertical-align: center;" id="tab_blocks" class="tabon" onclick="tabClick('blocks')">
              <img style="vertical-align:middle" width="25" src="media/blocks.png" />
              <span id="span_blocks">Blocks</span>
            </td>
            <td class="tabmin">&nbsp;</td>
            <td style="vertical-align: center;text-align:center;" id="tab_arduino" class="taboff"
            onclick="tabClick('arduino')">
            <span id="span_arduino">Code</span>
          </td>
          <td class="tabmin">&nbsp;</td>
          <td style="vertical-align: center;text-align:center;display:none;" id="tab_xml" class="taboff"
          onclick="tabClick('xml')">XML</td>
          <td class="tabcoyright">
            <span id="copyright"
            style="font-family:'YaHei Consolas Hybrid', 'Microsoft Yahei Light', 'Arial';font-size:12px;color:#999;">copyright</span>
          </td>
          <td class="tabmin">
            <input onclick="Blockly.mainWorkspace.undo(0);" name="undo" type="image" title="undo(ctrl+z)"
            src="media/undo.png" style="padding:5px;" onmouseover="this.src='media/undo1.png'"
            onmousedown="this.src='media/undo2.png'" onmouseup="this.src='media/undo1.png'"
            onmouseout="this.src='media/undo.png'" width="20" height="20" border="0">
          </td>
          <td class="tabmin">
            <input onclick="Blockly.mainWorkspace.undo(1);" name="redo" type="image" title="redo(ctrl+y)"
            src="media/redo.png" style="padding:5px" onmouseover="this.src='media/redo1.png'"
            onmousedown="this.src='media/redo2.png'" onmouseup="this.src='media/redo1.png'"
            onmouseout="this.src='media/redo.png'" width="20" height="20" border="0">
          </td>
          <td class="tabmin" style="padding-right:20px">
            <input onclick="JSFuncs.openUrlInBrowser('http://wiki.mixly.org/')" name="help" type="image"
            src="media/help.png" style="padding:5px" onmouseover="this.src='media/help1.png'"
            onmousedown="this.src='media/help2.png'" onmouseup="this.src='media/help1.png'"
            onmouseout="this.src='media/help.png'" width="20" height="20" border="0">
          </td>
          <td class="tabmin" style="padding-right:20px;display:none;">
            <button id="fakeload">LoadXML</button>
            <input type="file" id="load" style="display: none;" />
          </td>
          <td class="tabmin">
            <select id="languageMenu"></select>
          </td>
          <td class="tabmin">
            <select id="aceTheme" style="width:100px; height:23px; margin-left: 10px;">
              <optgroup label="代码区亮色主题">
                <option value="ace/theme/chrome">Chrome</option>
                <option value="ace/theme/clouds">Clouds</option>
                <option value="ace/theme/crimson_editor">Crimson Editor</option>
                <option value="ace/theme/dawn">Dawn</option>
                <option value="ace/theme/dreamweaver">Dreamweaver</option>
                <option value="ace/theme/eclipse">Eclipse</option>
                <option value="ace/theme/github">GitHub</option>
                <option value="ace/theme/iplastic">IPlastic</option>
                <option value="ace/theme/solarized_light">Solarized Light</option>
                <option value="ace/theme/textmate">TextMate</option>
                <option value="ace/theme/tomorrow">Tomorrow</option>
                <option value="ace/theme/xcode">XCode</option>
                <option value="ace/theme/kuroir">Kuroir</option>
                <option value="ace/theme/katzenmilch">KatzenMilch</option>
                <option value="ace/theme/sqlserver">SQL Server</option>
              </optgroup>
              <optgroup label="代码区暗色主题">
                <option value="ace/theme/ambiance">Ambiance</option>
                <option value="ace/theme/chaos">Chaos</option>
                <option value="ace/theme/clouds_midnight">Clouds Midnight</option>
                <option value="ace/theme/dracula">Dracula</option>
                <option value="ace/theme/cobalt">Cobalt</option>
                <option value="ace/theme/gruvbox">Gruvbox</option>
                <option value="ace/theme/gob">Green on Black</option>
                <option value="ace/theme/idle_fingers">idle Fingers</option>
                <option value="ace/theme/kr_theme">krTheme</option>
                <option value="ace/theme/merbivore">Merbivore</option>
                <option value="ace/theme/merbivore_soft">Merbivore Soft</option>
                <option value="ace/theme/mono_industrial">Mono Industrial</option>
                <option value="ace/theme/monokai">Monokai</option>
                <option value="ace/theme/pastel_on_dark">Pastel on dark</option>
                <option value="ace/theme/solarized_dark">Solarized Dark</option>
                <option value="ace/theme/terminal">Terminal</option>
                <option value="ace/theme/tomorrow_night">Tomorrow Night</option>
                <option value="ace/theme/tomorrow_night_blue">Tomorrow Night Blue</option>
                <option value="ace/theme/tomorrow_night_bright">Tomorrow Night Bright</option>
                <option value="ace/theme/tomorrow_night_eighties">Tomorrow Night 80s</option>
                <option value="ace/theme/twilight">Twilight</option>
                <option value="ace/theme/vibrant_ink">Vibrant Ink</option>
              </optgroup>
            </select>
          </td>
          <script>
            document.getElementById('span_blocks').textContent = MSG['tab_blocks'];
            document.getElementById('span_arduino').textContent = MSG['tab_arduino'];
          </script>
        </tr>
      </table>
    </td>
  </tr>
  <tr>
    <td height="100%" width="75%" id="content_area"></td>
    <td style="display:none;height:100%;width:0.3%;background: #ddd;cursor: w-resize;" id="mid_td"></td>
    <td width="25%" style="background-color:#eee;display:none;" id="side_code_parent">
      <div id="side_code" wrap="off" readonly></div>
    </td>
    <div id="sidebar" class="right-top" onclick="sidecodeClick()"></div>
  </tr>
</table>
<div id="content_blocks" class="content"></div>
<div id="content_arduino" class="content" wrap="off"></div>
<textarea id="content_xml" class="content" wrap="off" readonly></textarea>
<xml id="toolbox" style="display: none">
  <category name="" id="catInOut" colour="20">
    <block type="inout_highlow">
    </block>
    <block type="inout_digital_write2">
      <value name="PIN">
        <shadow type="pins_digitalWrite"></shadow>
      </value>
      <value name="STAT">
        <shadow type="inout_highlow">
        </shadow>
      </value>
    </block>
    <block type="inout_digital_read2">
      <value name="PIN">
        <shadow type="pins_digital"></shadow>
      </value>
    </block>
    <block type="touchAttachInterrupt">
      <value name="PIN">
        <shadow type="pins_touch"></shadow>
      </value>
      <value name="threshold">
        <shadow type="math_number">
          <field name="NUM">20</field>
        </shadow>
      </value>
    </block>
    <block type="ledcWrite">
      <value name="PIN">
        <shadow type="pins_pwm"></shadow>
      </value>
      <value name="NUM">
        <shadow type="math_number">
          <field name="NUM">0</field>
        </shadow>
      </value>
    </block>
    <block type="inout_esp32_dac">
      <value name="value">
        <shadow type="math_number">
          <field name="NUM">0</field>
        </shadow>
      </value>
    </block>
    <block type="inout_analog_read">
      <value name="PIN">
        <shadow type="pins_analog"></shadow>
      </value>
    </block>
    <block type="OneButton"></block>
    <block type="OneButton_interrupt">
      <value name="PIN">
        <shadow type="pins_digital"></shadow>
      </value>
      <value name="STAT">
        <shadow type="inout_highlow">
        </shadow>
      </value>
    </block>
    <block type="ESP32touchButton">
      <value name="PIN">
        <shadow type="pins_touch">
        </shadow>
      </value>
    </block>
    <block type="controls_attachInterrupt">
      <value name="PIN">
        <shadow type="pins_interrupt"></shadow>
      </value>
    </block>
    <block type="controls_detachInterrupt">
      <value name="PIN">
        <shadow type="pins_interrupt"></shadow>
      </value>
    </block>
    <block type="touchAttachInterrupt">
      <value name="PIN">
        <shadow type="pins_touch"></shadow>
      </value>
      <value name="threshold">
        <shadow type="math_number">
          <field name="NUM">20</field>
        </shadow>
      </value>
    </block>
    <block type="inout_pulseIn">
      <value name="PIN">
        <shadow type="pins_digital"></shadow>
      </value>
    </block>
    <block type="inout_pulseIn2">
      <value name="PIN">
        <shadow type="pins_digital"></shadow>
      </value>
      <value name="TIMEOUT">
        <shadow type="math_number">
          <field name="NUM">1000000</field>
        </shadow>
      </value>
    </block>
    <block type="inout_pinMode">
      <value name="PIN">
        <shadow type="pins_digital"></shadow>
      </value>
    </block>
    <block type="inout_shiftout">
      <value name="PIN1">
        <shadow type="pins_digital"></shadow>
      </value>
      <value name="PIN2">
        <shadow type="pins_digital"></shadow>
      </value>
      <value name="DATA">
        <shadow type="math_number">
          <field name="NUM">0</field>
        </shadow>
      </value>
    </block>
  </category>
  <category id="catControl" colour="120">
    <block type="base_setup">
    </block>
    <block type="controls_end_program">
    </block>
    <block type="do_while">
      <value name="select_data">
        <shadow type="logic_boolean">
        </shadow>
      </value>
    </block>
    <block type="controls_whileUntil">
      <value name="BOOL">
        <shadow type="logic_boolean">
        </shadow>
      </value>
    </block>
    <block type="controls_delay">
      <value name="DELAY_TIME">
        <shadow type="math_number">
          <field name="NUM">1000</field>
        </shadow>
      </value>
    </block>
    <block type="controls_if">
    </block>
    <block type="controls_switch_case">
    </block>
    <block type="controls_for">
      <value name="FROM">
        <shadow type="math_number">
          <field name="NUM">1</field>
        </shadow>
      </value>
      <value name="TO">
        <shadow type="math_number">
          <field name="NUM">10</field>
        </shadow>
      </value>
      <value name="STEP">
        <shadow type="math_number">
          <field name="NUM">1</field>
        </shadow>
      </value>
    </block>
    <block type="controls_flow_statements">
    </block>
    <block type="controls_millis">
    </block>
    <block type="controls_runnig_core">
    </block>
    <block type="control_core_delay">
      <value name="sleeplength">
        <shadow type="math_number">
          <field name="NUM">1000</field>
        </shadow>
      </value>
    </block>
    <block type="controls_hw_timer">
      <value name="TIME">
        <shadow type="math_number">
          <field name="NUM">500</field>
        </shadow>
      </value>
    </block>
    <block type="controls_hw_timer_start">
    </block>
    <block type="controls_hw_timer_stop">
    </block>
    <block type="simple_timer">
      <field name="NO">1</field>
      <value name="timein">
        <shadow type="math_number">
          <field name="NUM">1000</field>
        </shadow>
      </value>
    </block>
    <block type="super_delay_function1"></block>
    <block type="execute_super_delay_function1">
     <value name="time_interval">
      <shadow type="math_number">
        <field name="NUM">1000</field>
      </shadow>
    </value>
    <value name="frequency">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
  </block>
  <value name="frequency">
    <shadow type="math_number">
      <field name="NUM">1</field>
    </shadow>
  </value>
</block>
</category>
<category id="catMath" colour="230">
  <block type="math_number">
  </block>
  <block type="math_arithmetic">
    <value name="A">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
    <value name="B">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
  </block>
  <block type="math_bit">
    <value name="A">
      <shadow type="math_number">
        <field name="NUM">0</field>
      </shadow>
    </value>
    <value name="B">
      <shadow type="math_number">
        <field name="NUM">0</field>
      </shadow>
    </value>
  </block>
  <block type="math_trig">
  </block>
  <block type="variables_operation">
    <value name="data">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
    <value name="variables">
      <shadow type="math_number">
        <field name="NUM">item</field>
      </shadow>
    </value>
  </block>
  <block type="math_auto_add_or_minus">
    <field name="math_auto_add_minus_type">++</field>
    <value name="math_auto_add_minus_output">
      <shadow type="variables_get">
        <field name="VAR">item</field>
      </shadow>
    </value>
  </block>
  <block type="math_to_int">
  </block>
  <block type="math_SizeOf">
    <value name="data">
      <shadow type="arduino_variate_type">
      </shadow>
    </value>
  </block>
  <block type="math_max_min">
    <value name="A">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
    <value name="B">
      <shadow type="math_number">
        <field name="NUM">2</field>
      </shadow>
    </value>
  </block>
  <block type="math_random_seed">
    <value name="NUM">
      <shadow type="math_number">
        <field name="NUM">997</field>
      </shadow>
      <block type="controls_millis">
        <field name="UNIT">millis</field>
      </block>
    </value>
  </block>
  <block type="math_random_int">
    <value name="FROM">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
    <value name="TO">
      <shadow type="math_number">
        <field name="NUM">100</field>
      </shadow>
    </value>
  </block>
  <block type="math_constrain">
    <value name="LOW">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
    <value name="HIGH">
      <shadow type="math_number">
        <field name="NUM">100</field>
      </shadow>
    </value>
  </block>
  <block type="base_map">
    <value name="fromLow">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
    <value name="fromHigh">
      <shadow type="math_number">
        <field name="NUM">100</field>
      </shadow>
    </value>
    <value name="toLow">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
    <value name="toHigh">
      <shadow type="math_number">
        <field name="NUM">1000</field>
      </shadow>
    </value>
  </block>
</category>
<category id="catLogic" colour="210">
  <block type="logic_compare">
  </block>
  <block type="logic_operation">
  </block>
  <block type="logic_negate">
  </block>
  <block type="logic_boolean">
  </block>
  <block type="logic_null">
  </block>
  <block type="logic_true_or_false">
  </block>
</category>
<category id="catText" colour="160">
  <block type="text">
    <field name="TEXT">hello</field>
  </block>
  <block type="text_char">
    <field name="TEXT">a</field>
  </block>
  <block type="text_join">
    <value name="A">
      <shadow type="text">
        <field name="TEXT">Hello</field>
      </shadow>
    </value>
    <value name="B">
      <shadow type="text">
        <field name="TEXT">Mixly</field>
      </shadow>
    </value>
  </block>
  <block type="text_join2">
    <value name="ADD0">
      <block type="text">
        <field name="TEXT">A</field>
      </block>
    </value>
    <value name="ADD1">
      <block type="text">
        <field name="TEXT">B</field>
      </block>
    </value>
    <value name="ADD2">
      <block type="text">
        <field name="TEXT">C</field>
      </block>
    </value>
  </block>
  <block type="text_to_number">
    <value name="VAR">
      <shadow type="text">
        <field name="TEXT">123</field>
      </shadow>
    </value>
  </block>
  <block type="String_indexOf">
    <value name="str1">
      <shadow type="text">
        <field name="TEXT">Mixly</field>
      </shadow>
    </value>
    <value name="str2">
      <shadow type="text">
        <field name="TEXT">y</field>
      </shadow>
    </value>
  </block>
  <block type="substring">
    <value name="name">
      <shadow type="text">
        <field name="TEXT">substring</field>
      </shadow>
    </value>
    <value name="Start">
      <shadow type="math_number">
        <field name="NUM">0</field>
      </shadow>
    </value>
    <value name="end">
      <shadow type="math_number">
        <field name="NUM">3</field>
      </shadow>
    </value>
  </block>
  <block type="decimal_places">
    <value name="numeral">
      <shadow type="math_number">
        <field name="NUM">6.666</field>
      </shadow>
    </value>
    <value name="decimal_places">
      <shadow type="math_number">
        <field name="NUM">2</field>
      </shadow>
    </value>
  </block>
  <block type="letter_conversion">
    <value name="String">
      <shadow type="math_number">
        <field name="NUM">String</field>
      </shadow>
    </value>
  </block>
  <block type="data_replacement">
    <value name="String">
      <shadow type="math_number">
        <field name="NUM">String</field>
      </shadow>
    </value>
    <value name="source_data">
      <shadow type="text">
        <field name="TEXT">s</field>
      </shadow>
    </value>
    <value name="replace">
      <shadow type="text">
        <field name="TEXT">Q</field>
      </shadow>
    </value>
  </block>
  <block type="eliminate">
    <value name="String">
      <shadow type="math_number">
        <field name="NUM">String</field>
      </shadow>
    </value>
  </block>
  <block type="first_and_last">
    <value name="String">
      <shadow type="text">
        <field name="TEXT">substring</field>
      </shadow>
    </value>
    <value name="String1">
      <shadow type="text">
        <field name="TEXT">substring</field>
      </shadow>
    </value>
  </block>
  <block type="type_conversion">
    <value name="variable">
      <shadow type="text">
        <field name="TEXT">substring</field>
      </shadow>
    </value>
  </block>
  <block type="ascii_to_char">
    <value name="VAR">
      <shadow type="math_number">
        <field name="NUM">223</field>
      </shadow>
    </value>
  </block>
  <block type="char_to_ascii">
    <field name="TEXT">a</field>
  </block>
  <block type="number_to_text">
    <value name="VAR">
      <shadow type="math_number">
        <field name="NUM">0</field>
      </shadow>
    </value>
  </block>
  <block type="text_length">
    <value name="VAR">
      <shadow type="text">
        <field name="TEXT">hello</field>
      </shadow>
    </value>
  </block>
  <block type="text_char_at">
    <value name="VAR">
      <shadow type="text">
        <field name="TEXT">hello</field>
      </shadow>
    </value>
    <value name="AT">
      <shadow type="math_number">
        <field name="NUM">0</field>
      </shadow>
    </value>
  </block>
  <block type="text_equals_starts_ends">
    <value name="STR1">
      <shadow type="text">
        <field name="TEXT"></field>
      </shadow>
    </value>
    <value name="STR2">
      <shadow type="text">
        <field name="TEXT"></field>
      </shadow>
    </value>
  </block>
  <block type="text_compareTo">
    <value name="STR1">
      <shadow type="text">
        <field name="TEXT"></field>
      </shadow>
    </value>
    <value name="STR2">
      <shadow type="text">
        <field name="TEXT"></field>
      </shadow>
    </value>
  </block>
</category>
<category id="catLists" colour="260">
  <block type="lists_create_with2">
  </block>
  <block type="lists_create_with_text2">
  </block>
  <block type="lists_length">
  </block>
  <block type="lists_getIndex">
    <value name="AT">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
  </block>
  <block type="lists_setIndex">
    <value name="AT">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
  </block>
  <block type="lists_array2_setup">
    <field name="lists_create_type">int</field>
    <field name="lists_create_name">mylist</field>
    <statement name="lists_with_2_1_data">
      <block type="lists_array2_setup_get_data">
        <mutation items="3"></mutation>
        <value name="ADD0">
          <block type="math_number" >
            <field name="NUM">0</field>
          </block>
        </value>
        <value name="ADD1">
          <block type="math_number" >
            <field name="NUM">1</field>
          </block>
        </value><value name="ADD2">
          <block type="math_number">
            <field name="NUM">2</field>
          </block>
        </value>
        <next>
          <block type="lists_array2_setup_get_data">
            <mutation items="3"></mutation>
            <value name="ADD0">
              <block type="math_number">
                <field name="NUM">1</field>
              </block>
            </value>
            <value name="ADD1">
              <block type="math_number">
                <field name="NUM">2</field>
              </block>
            </value>
            <value name="ADD2">
              <block type="math_number">
                <field name="NUM">3</field>
              </block>
            </value>
            <next>
              <block type="lists_array2_setup_get_data">
                <mutation items="3">
                </mutation><value name="ADD0">
                  <block type="math_number">
                    <field name="NUM">2</field>
                  </block>
                </value>
                <value name="ADD1">
                  <block type="math_number">
                    <field name="NUM">3</field>
                  </block>
                </value>
                <value name="ADD2">
                  <block type="math_number">
                    <field name="NUM">4</field>
                  </block>
                </value>
              </block>
            </next>
          </block>
        </next>
      </block>
    </statement>
  </block>
  <block type="create_array2_with_text">
    <value name="name">
      <shadow type="math_number">
        <field name="NUM">array</field>
      </shadow>
    </value>
    <value name="line">
      <shadow type="math_number">
        <field name="NUM">2</field>
      </shadow>
    </value>
    <value name="list">
      <shadow type="math_number">
        <field name="NUM">2</field>
      </shadow>
    </value>
    <value name="String">
      <shadow type="math_number">
        <field name="NUM">{0,0},{0,0}</field>
      </shadow>
    </value>
  </block>
  <block type="array2_assignment">
    <value name="name">
      <shadow type="math_number">
        <field name="NUM">array</field>
      </shadow>
    </value>
    <value name="line">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
    <value name="list">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
    <value name="assignment">
      <shadow type="math_number">
        <field name="NUM">0</field>
      </shadow>
    </value>
  </block>
  <block type="get_array2_value">
    <value name="name">
      <shadow type="math_number">
        <field name="NUM">array</field>
      </shadow>
    </value>
    <value name="line">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
    <value name="list">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
  </block>
  <block type="loop_array">
    <value name="name">
      <shadow type="math_number">
        <field name="NUM">array</field>
      </shadow>
    </value>
  </block>
</category>
<category id="catVar" colour="330" custom="VARIABLE">
</category>
<category id="catFun" custom="PROCEDURE" colour="290">
</category>
<category id="catSerialPort" colour="65">
  <block type="serial_begin">
    <value name="CONTENT">
      <shadow type="math_number">
        <field name="NUM">9600</field>
      </shadow>
    </value>
  </block>
  <block type="serial_write">
  </block>
  <block type="serial_print">
  <field name="serial_select">Serial</field>
  <field name="new_line">println</field>
</block>
  <block type="serial_print_num">
    <value name="CONTENT">
      <shadow type="math_number">
        <field name="NUM">0</field>
      </shadow>
    </value>
  </block>
  <block type="serial_available">
  </block>
  <block type="serial_readstr">
  </block>
  <block type="serial_readstr_until">
    <value name="CONTENT">
      <shadow type="text_char">
        <field name="TEXT">a</field>
      </shadow>
    </value>
  </block>
  <block type="serial_parseInt_Float">
  </block>
  <block type="serial_flush">
  </block>
  <block type="serial_HardwareSerial">
    <value name="TX">
      <shadow type="pins_digital"></shadow>
    </value>
    <value name="RX">
      <shadow type="pins_digital"></shadow>
    </value>
    <value name="CONTENT">
      <shadow type="math_number">
        <field name="NUM">9600</field>
      </shadow>
    </value>
  </block>
<block type="serial_softserial">
  <value name="TX">
    <shadow type="pins_digital"></shadow>
  </value>
  <value name="RX">
    <shadow type="pins_digital"></shadow>
  </value>
</block>
  <block type="serial_event">
  </block>
</category>
<category id="catOnBoard" name="catOnBoard" colour="65">
  <category id="catOnBoardSensor" name="catOnBoardSensor" colour="40">
    <block type="handbit_button_is_pressed">
    </block>
    <block type="handbit_light">
    </block>
    <block type="handbit_sound">
    </block>
    <block type="inout_touchRead">
     <value name="PIN">
      <shadow type="pins_touch">
      </shadow>
    </value>
  </block>
  <block type="handbit_MSA300">
  </block>
  <block type="handbit_MSA300_action">
  </block>
</category>
<category id="catOnBoardActuator" name="catOnBoardActuator" colour="100">
  <block type="RGB_color_seclet">
    <field name="COLOR">#ff0000</field>
  </block>
  <block type="RGB_color_rgb">
    <value name="R">
      <shadow type="math_number">
        <field name="NUM">0</field>
      </shadow>
    </value>
    <value name="G">
      <shadow type="math_number">
        <field name="NUM">0</field>
      </shadow>
    </value>
    <value name="B">
      <shadow type="math_number">
        <field name="NUM">0</field>
      </shadow>
    </value>
  </block>
  <block type="handbit_rgb">
    <value name="_LED_">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
    <value name="COLOR">
      <shadow type="math_number">
        <field name="NUM">
        </field>
      </shadow>
      <block type="RGB_color_rgb">
        <value name="R">
          <shadow type="math_number">
            <field name="NUM">0</field>
          </shadow>
        </value>
        <value name="G">
          <shadow type="math_number">
            <field name="NUM">0</field>
          </shadow>
        </value>
        <value name="B">
          <shadow type="math_number">
            <field name="NUM">0</field>
          </shadow>
        </value>
      </block>
    </value>
  </block>
  <block type="handbit_rgb2">
    <value name="COLOR1">
      <shadow type="math_number">
        <field name="NUM">
        </field>
      </shadow>
      <block type="RGB_color_seclet">
        <field name="COLOR">#ff0000</field>
      </block>
    </value>
    <value name="COLOR2">
      <shadow type="math_number">
        <field name="NUM">
        </field>
      </shadow>
      <block type="RGB_color_seclet">
        <field name="COLOR">#ffff33</field>
      </block>
    </value>
    <value name="COLOR3">
      <shadow type="math_number">
        <field name="NUM">
        </field>
      </shadow>
      <block type="RGB_color_seclet">
        <field name="COLOR">#00cccc</field>
      </block>
    </value>
  </block>
  <block type="handbit_RGB_color_HSV">
  <value name="_LED_">
    <shadow type="math_number">
      <field name="NUM">1</field>
    </shadow>
  </value>
  <value name="H">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value>
  <value name="S">
    <shadow type="math_number">
      <field name="NUM">255</field>
    </shadow>
  </value>
  <value name="V">
    <shadow type="math_number">
      <field name="NUM">255</field>
    </shadow>
  </value>
</block>
  <block type="handbit_rgb_Brightness">
    <value name="Brightness">
      <shadow type="math_number">
        <field name="NUM">20</field>
      </shadow>
    </value>
  </block>
  <block type="handbit_rgb_show">
  </block>
  <block type="onboard_tone">
    <value name="CHANNEL">
      <shadow type="CHANNEL">
        <field name="PIN">0</field>
      </shadow>
    </value>
    <value name="FREQUENCY">
      <shadow type="tone_notes"></shadow>
    </value>
    <value name="DELAY_TIME">
      <shadow type="math_number">
        <field name="NUM">1000</field>
      </shadow>
    </value>
  </block>
  <block type="onboard_notone">
    <value name="CHANNEL">
      <shadow type="CHANNEL"></shadow>
    </value>
  </block>
</category>
<category id="catOnBoardDisplay" name="catOnBoardDisplay" colour="180">
  <block type="oled_init">
    <field name="OLED_TYPE">SH1106_128X64_NONAME</field>
    <field name="SCL">SCL</field>
    <field name="SDA">SDA</field>
    <value name="ADDRESS">
      <shadow type="math_number">
        <field name="NUM">0x3C</field>
      </shadow>
    </value>
    <next>
      <block type="oled_page">
        <statement name="DO">
          <block type="procedures_callnoreturn">
            <mutation name="page1">
            </mutation>
          </block>
        </statement>
      </block>
    </next>
  </block>
  <block type="oled_set_EN_Font">
  </block>
  <block type="oled_set_CN_Font">
  </block>
  <block type="procedures_defnoreturn">
    <field name="NAME">page1</field>
    <statement name="STACK">
      <block type="oled_set_EN_Font">
        <field name="TYPE">timR08_tr</field>
        <next>
          <block type="oled_print">
            <value name="POS_X">
              <shadow type="math_number">
                <field name="NUM">0</field>
              </shadow>
            </value>
            <value name="POS_Y">
              <shadow type="math_number">
                <field name="NUM">20</field>
              </shadow>
            </value>
            <value name="TEXT">
              <shadow type="text">
                <field name="TEXT">1234</field>
              </shadow>
            </value>
          </block>
        </next>
      </block>
    </statement>
  </block>
  <block type="oled_define_bitmap_data"></block>
  <block type="oled_clear"></block>
  <block type="u8g2_setContrast">
   <value name="Contrast">
    <shadow type="math_number">
      <field name="NUM">100</field>
    </shadow>
  </value> 
</block>
<block type="oled_face">
  <value name="POS_X">
    <shadow type="math_number">
      <field name="NUM">20</field>
    </shadow>
  </value>
  <value name="POS_Y">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value>
  <field name="Icon_size"></field>
</block>
<block type="oled_icons">
  <value name="POS_X">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value>
  <value name="POS_Y">
    <shadow type="math_number">
      <field name="NUM">20</field>
    </shadow>
  </value>
  <field name="Icon_size"></field>
</block>
<block type="tool_modulus_show">
  <field name="VAR">bitmap</field>
  <field name="x">96</field>
  <field name="save_hz">TRUE</field>
  <value name="input_data">
    <block type="tool_modulus">
      <field name="bitmap_formats">1</field>
      <field name="modulus_way">2</field>
      <field name="modulus_direction">2</field>
      <field name="hz_sharp">STHeiti</field>
      <field name="hz_line_height">16</field>
      <field name="hz_up_down">hz_up</field>
      <field name="hz_up_down_data">0</field>
      <field name="hz_left_right">hz_left</field>
      <field name="hz_left_right_data">0</field>
      <field name="bitmap_width">48</field>
      <field name="bitmap_height">16</field>
      <field name="show_hz">TRUE</field>
      <field name="input_data">米思齐</field>
    </block>
  </value>
</block>
<block type="oled_showBitmap">
  <value name="START_X">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value>
  <value name="START_Y">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value>
  <value name="WIDTH">
    <shadow type="math_number">
      <field name="NUM">128</field>
    </shadow>
  </value>
  <value name="HEIGHT">
    <shadow type="math_number">
      <field name="NUM">64</field>
    </shadow>
  </value>
  <value name="bitmap_name">
    <block type="text">
      <field name="TEXT">bitmap1</field>
    </block>
  </value>
</block>
<block type="oled_drawPixel">
  <value name="POS_X">
    <shadow type="math_number">
      <field name="NUM">64</field>
    </shadow>
  </value>
  <value name="POS_Y">
    <shadow type="math_number">
      <field name="NUM">32</field>
    </shadow>
  </value>
</block>
<block type="oled_drawLine">
  <value name="START_X">
    <shadow type="math_number">
      <field name="NUM">1</field>
    </shadow>
  </value>
  <value name="START_Y">
    <shadow type="math_number">
      <field name="NUM">1</field>
    </shadow>
  </value>
  <value name="END_X">
    <shadow type="math_number">
      <field name="NUM">15</field>
    </shadow>
  </value>
  <value name="END_Y">
    <shadow type="math_number">
      <field name="NUM">20</field>
    </shadow>
  </value>
</block>
<block type="oled_draw_Str_Line">
  <value name="START_X">
    <shadow type="math_number">
      <field name="NUM">1</field>
    </shadow>
  </value>
  <value name="START_Y">
    <shadow type="math_number">
      <field name="NUM">1</field>
    </shadow>
  </value>
  <value name="LENGTH">
    <shadow type="math_number">
      <field name="NUM">30</field>
    </shadow>
  </value>
</block>
<block type="oled_drawFrame">
  <value name="D0_X">
    <shadow type="math_number">
      <field name="NUM">1</field>
    </shadow>
  </value>
  <value name="D0_Y">
    <shadow type="math_number">
      <field name="NUM">1</field>
    </shadow>
  </value>
  <value name="WIDTH">
    <shadow type="math_number">
      <field name="NUM">10</field>
    </shadow>
  </value>
  <value name="HEIGHT">
    <shadow type="math_number">
      <field name="NUM">20</field>
    </shadow>
  </value>
</block>
<block type="oled_drawRFrame">
  <value name="D0_X">
    <shadow type="math_number">
      <field name="NUM">1</field>
    </shadow>
  </value>
  <value name="D0_Y">
    <shadow type="math_number">
      <field name="NUM">1</field>
    </shadow>
  </value>
  <value name="WIDTH">
    <shadow type="math_number">
      <field name="NUM">10</field>
    </shadow>
  </value>
  <value name="HEIGHT">
    <shadow type="math_number">
      <field name="NUM">20</field>
    </shadow>
  </value>
  <value name="RADIUS">
    <shadow type="math_number">
      <field name="NUM">3</field>
    </shadow>
  </value>
</block>
<block type="oled_drawCircle">
  <value name="D0_X">
    <shadow type="math_number">
      <field name="NUM">30</field>
    </shadow>
  </value>
  <value name="D0_Y">
    <shadow type="math_number">
      <field name="NUM">30</field>
    </shadow>
  </value>
  <value name="RADIUS">
    <shadow type="math_number">
      <field name="NUM">6</field>
    </shadow>
  </value>
</block>
<block type="oled_drawEllipse">
  <value name="D0_X">
    <shadow type="math_number">
      <field name="NUM">30</field>
    </shadow>
  </value>
  <value name="D0_Y">
    <shadow type="math_number">
      <field name="NUM">30</field>
    </shadow>
  </value>
  <value name="RADIUS_X">
    <shadow type="math_number">
      <field name="NUM">6</field>
    </shadow>
  </value>
  <value name="RADIUS_Y">
    <shadow type="math_number">
      <field name="NUM">15</field>
    </shadow>
  </value>
</block>
<block type="oled_drawTriangle">
  <value name="D0_X">
    <shadow type="math_number">
      <field name="NUM">14</field>
    </shadow>
  </value>
  <value name="D0_Y">
    <shadow type="math_number">
      <field name="NUM">55</field>
    </shadow>
  </value>
  <value name="D1_X">
    <shadow type="math_number">
      <field name="NUM">45</field>
    </shadow>
  </value>
  <value name="D1_Y">
    <shadow type="math_number">
      <field name="NUM">33</field>
    </shadow>
  </value>
  <value name="D2_X">
    <shadow type="math_number">
      <field name="NUM">8</field>
    </shadow>
  </value>
  <value name="D2_Y">
    <shadow type="math_number">
      <field name="NUM">43</field>
    </shadow>
  </value>
</block>
</category>
</category>
<category id="catSensor" colour="40">
  <block type="chaoshengbo2">
  </block>
  <block type="DHT">
    <value name="PIN">
      <shadow type="pins_digital"></shadow>
    </value>
  </block>
  <block type="LM35">
    <value name="PIN">
      <shadow type="pins_analog"></shadow>
    </value>
  </block>
  <block type="ds18b20">
    <value name="PIN">
      <shadow type="pins_digital"></shadow>
    </value>
  </block>
  <block type="TCS34725_Get_RGB">
  </block>
  <block type="SHT20">
  </block>
  <block type="ADXL345">
  </block>
  <block type="ADXL345_setOffset">
    <value name="OFFSET">
      <shadow type="math_number">
        <field name="NUM">120</field>
      </shadow>
    </value>
  </block>
  <block type="weightSensor">
    <value name="scale">
      <shadow type="math_number">
        <field name="NUM">1992</field>
      </shadow>
    </value>
  </block>
  <block type="MPU6050_update">
  </block>
  <block type="MPU6050">
  </block>
  <block type="BME280_READ">
    <value name="address">
      <shadow type="math_number">
        <field name="NUM">0x77</field>
      </shadow>
    </value>
  </block>
</category>
<category id="catActuator" colour="100">
  <block type="Mixly_motor">
    <value name="PIN1">
      <shadow type="pins_digital">
        <field name="PIN">5</field>
      </shadow>
    </value>
    <value name="PIN2">
      <shadow type="pins_digital">
        <field name="PIN">4</field>
      </shadow>
    </value>
    <value name="speed">
      <shadow type="math_number">
        <field name="NUM">100</field>
      </shadow>
    </value>
  </block>
  <block type="handbit_motor_move">
    <value name="speed">
      <shadow type="math_number">
        <field name="NUM">100</field>
      </shadow>
    </value>
  </block>
  <block type="servo_move">
    <value name="PIN">
      <shadow type="pins_digital"></shadow>
    </value>
    <value name="DEGREE">
      <shadow type="math_number">
        <field name="NUM">0</field>
      </shadow>
    </value>
    <value name="DELAY_TIME">
      <shadow type="math_number">
        <field name="NUM">0</field>
      </shadow>
    </value>
  </block>
  <block type="servo_writeMicroseconds">
    <value name="PIN">
      <shadow type="pins_digital"></shadow>
    </value>
    <value name="DEGREE">
      <shadow type="math_number">
        <field name="NUM">1500</field>
      </shadow>
    </value>
  </block>
  <block type="servo_read_degrees">
    <value name="PIN">
      <shadow type="pins_digital"></shadow>
    </value>
  </block>
  <block type="controls_tone">
    <value name="PIN">
      <shadow type="pins_digitalWrite">
        <field name="PIN">17</field>
      </shadow>
    </value>
    <value name="CHANNEL">
      <shadow type="CHANNEL">
        <field name="PIN">0</field>
      </shadow>
    </value>
    <value name="FREQUENCY">
      <shadow type="tone_notes"></shadow>
    </value>
    <value name="DELAY_TIME">
      <shadow type="math_number">
        <field name="NUM">1000</field>
      </shadow>
    </value>
  </block>
  <block type="controls_notone">
   <value name="PIN">
    <shadow type="pins_digitalWrite">
      <field name="PIN">17</field>
    </shadow>
  </value>
  <value name="CHANNEL">
    <shadow type="CHANNEL"></shadow>
  </value>
</block>
<block type="group_stepper_setup">
  <value name="PIN1">
    <shadow type="pins_digital">
      <field name="PIN">1</field>
    </shadow>
  </value>
  <value name="PIN2">
    <shadow type="pins_digital">
      <field name="PIN">2</field>
    </shadow>
  </value>
  <value name="steps">
    <shadow type="math_number">
      <field name="NUM">100</field>
    </shadow>
  </value>
  <value name="speed">
    <shadow type="math_number">
      <field name="NUM">10</field>
    </shadow>
  </value>
</block>
<block type="group_stepper_setup2">
  <value name="PIN1">
    <shadow type="pins_digital">
      <field name="PIN">1</field>
    </shadow>
  </value>
  <value name="PIN2">
    <shadow type="pins_digital">
      <field name="PIN">2</field>
    </shadow>
  </value>
  <value name="PIN3">
    <shadow type="pins_digital">
      <field name="PIN">3</field>
    </shadow>
  </value>
  <value name="PIN4">
    <shadow type="pins_digital">
      <field name="PIN">4</field>
    </shadow>
  </value>
  <value name="steps">
    <shadow type="math_number">
      <field name="NUM">100</field>
    </shadow>
  </value>
  <value name="speed">
    <shadow type="math_number">
      <field name="NUM">10</field>
    </shadow>
  </value>
</block>
<block type="group_stepper_move">
  <value name="step">
    <shadow type="math_number">
      <field name="NUM">10</field>
    </shadow>
  </value>
</block>
<block type="RGB_color_seclet">
  <field name="COLOR">#ff0000</field>
</block>
<block type="RGB_color_rgb">
  <value name="R">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value>
  <value name="G">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value>
  <value name="B">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value>
</block>
<block type="display_rgb_init">
  <value name="PIN">
    <shadow type="pins_digitalWrite" />
  </value>
  <value name="LEDCOUNT">
    <shadow type="math_number">
      <field name="NUM">4</field>
    </shadow>
  </value>
  <value name="Brightness">
    <shadow type="math_number">
      <field name="NUM">20</field>
    </shadow>
  </value>
</block>
<block type="display_rgb_Brightness">
  <value name="PIN">
    <shadow type="pins_digitalWrite" />
  </value>
  <value name="Brightness">
    <shadow type="math_number">
      <field name="NUM">20</field>
    </shadow>
  </value>
</block>
<block type="display_rgb">
  <value name="PIN">
    <shadow type="pins_digitalWrite" />
  </value>
  <value name="_LED_">
    <shadow type="math_number">
      <field name="NUM">1</field>
    </shadow>
  </value>
  <value name="COLOR">
    <shadow type="math_number">
      <field name="NUM">
      </field>
    </shadow>
    <block type="RGB_color_rgb">
      <value name="R">
        <shadow type="math_number">
          <field name="NUM">0</field>
        </shadow>
      </value>
      <value name="G">
        <shadow type="math_number">
          <field name="NUM">0</field>
        </shadow>
      </value>
      <value name="B">
        <shadow type="math_number">
          <field name="NUM">0</field>
        </shadow>
      </value>
    </block>
  </value>
</block>
<block type="RGB_color_HSV">
  <value name="PIN">
    <shadow type="pins_digital" />
  </value>
  <value name="_LED_">
    <shadow type="math_number">
      <field name="NUM">1</field>
    </shadow>
  </value>
  <value name="H">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value>
  <value name="S">
    <shadow type="math_number">
      <field name="NUM">255</field>
    </shadow>
  </value>
  <value name="V">
    <shadow type="math_number">
      <field name="NUM">255</field>
    </shadow>
  </value>
</block>
<block type="display_rgb_show">
</block>
<block type="display_rgb_rainbow1">
  <value name="PIN">
    <shadow type="pins_digitalWrite" />
  </value>
  <value name="WAIT">
    <shadow type="math_number">
      <field name="NUM">20</field>
    </shadow>
  </value>
  <value name="Brightness">
    <shadow type="math_number">
      <field name="NUM">20</field>
    </shadow>
  </value>
</block>
<block type="display_rgb_rainbow3">
  <value name="PIN">
    <shadow type="pins_digitalWrite" />
  </value>
  <value name="rainbow_color">
    <shadow type="math_number">
      <field name="NUM">20</field>
    </shadow>
  </value>
</block>
<block type="GD5800_MP3_CONTROL">
  <value name="RXPIN">
    <shadow type="pins_digital" />
    <field name="PIN">4</field>
  </value>
  <value name="TXPIN">
    <shadow type="pins_digital" />
    <field name="PIN">5</field>
  </value>
</block>
<block type="GD5800_MP3_PLAY_NUM">
  <value name="RXPIN">
    <shadow type="pins_digital" />
    <field name="PIN">4</field>
  </value>
  <value name="TXPIN">
    <shadow type="pins_digital" />
    <field name="PIN">5</field>
  </value>
  <value name="NUM">
    <shadow type="math_number">
      <field name="NUM">2</field>
    </shadow>
  </value>
</block>
<block type="GD5800_MP3_LOOP_MODE">
  <value name="RXPIN">
    <shadow type="pins_digital" />
    <field name="PIN">4</field>
  </value>
  <value name="TXPIN">
    <shadow type="pins_digital" />
    <field name="PIN">5</field>
  </value>
</block>
<block type="GD5800_MP3_EQ_MODE">
  <value name="RXPIN">
    <shadow type="pins_digital" />
    <field name="PIN">4</field>
  </value>
  <value name="TXPIN">
    <shadow type="pins_digital" />
    <field name="PIN">5</field>
  </value>
</block>
<block type="GD5800_MP3_VOL">
  <value name="RXPIN">
    <shadow type="pins_digital" />
    <field name="PIN">4</field>
  </value>
  <value name="TXPIN">
    <shadow type="pins_digital" />
    <field name="PIN">5</field>
  </value>
  <value name="vol">
    <shadow type="math_number">
      <field name="NUM">20</field>
    </shadow>
  </value>
</block>
</category>
<category id="catMonitor" colour="180">
  <category id="cat4Digitdisplay" colour="180">
    <block type="display_TM1637_init">
    </block>
    <block type="display_TM1637_Brightness">
      <value name="Brightness">
        <shadow type="math_number">
          <field name="NUM">20</field>
        </shadow>
      </value>
    </block>
    <block type="display_TM1637_clearDisplay"></block>
    <block type="display_TM1637_displyPrint">
      <value name="VALUE">
        <shadow type="text">
          <field name="TEXT">2345</field>
        </shadow>
      </value>
      <value name="Speed">
        <shadow type="math_number">
          <field name="NUM">300</field>
        </shadow>
      </value>
    </block>
    <block type="display_TM1637_displayTime">
      <value name="hour">
        <shadow type="math_number">
          <field name="NUM">12</field>
        </shadow>
      </value>
      <value name="minute">
        <shadow type="math_number">
          <field name="NUM">30</field>
        </shadow>
      </value>
      <value name="STAT">
        <shadow type="inout_highlow">
        </shadow>
      </value>
    </block>
  </category>
  <category id="catLCD" colour="180">
    <block type="group_lcd_init2">
      <value name="device">
        <shadow type="math_number">
          <field name="NUM">0x27</field>
        </shadow>
      </value>
    </block>
    <block type="group_lcd_init3">
     <field name="RS">2</field>
     <field name="EN">4</field>
     <field name="D4">5</field>
     <field name="D5">12</field>
     <field name="D6">13</field>
     <field name="D7">14</field>
   </block>
   <block type="group_lcd_print">
    <value name="TEXT">
      <block type="text">
        <field name="TEXT"></field>
      </block>
    </value>
    <value name="TEXT2">
      <block type="text">
        <field name="TEXT"></field>
      </block>
    </value>
  </block>
  <block type="group_lcd_print2">
    <value name="row">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
    <value name="column">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
    <value name="TEXT">
      <block type="text">
        <field name="TEXT"></field>
      </block>
    </value>
  </block>
  <block type="group_lcd_power">
    <field name="STAT">clear</field>
  </block>
</category>
<category id="catOLED" colour="180">
  <block type="oled_init">
    <value name="ADDRESS">
      <shadow type="math_number">
        <field name="NUM">0x3C</field>
      </shadow>
    </value>
    <next>
      <block type="oled_page">
        <statement name="DO">
          <block type="procedures_callnoreturn">
            <mutation name="page1"></mutation>
          </block>
        </statement>
      </block>
    </next>

  </block>
  <block type="oled_set_EN_Font">
  </block>
  <block type="oled_set_CN_Font">
  </block>
  <block type="procedures_defnoreturn">
    <field name="NAME">page1</field>
    <statement name="STACK">
      <block type="oled_set_EN_Font">
        <field name="TYPE">timR08_tr</field>
        <next>
          <block type="oled_print">
            <value name="POS_X">
              <shadow type="math_number">
                <field name="NUM">0</field>
              </shadow>
            </value>
            <value name="POS_Y">
              <shadow type="math_number">
                <field name="NUM">20</field>
              </shadow>
            </value>
            <value name="TEXT">
              <shadow type="text">
                <field name="TEXT">1234</field>
              </shadow>
            </value>
          </block>
        </next>
      </block>
    </statement>
  </block>
  <block type="oled_define_bitmap_data"></block>
  <block type="oled_clear"></block>
  <block type="u8g2_setContrast">
   <value name="Contrast">
    <shadow type="math_number">
      <field name="NUM">100</field>
    </shadow>
  </value> 
</block>
<block type="oled_face">
  <value name="POS_X">
    <shadow type="math_number">
      <field name="NUM">20</field>
    </shadow>
  </value>
  <value name="POS_Y">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value>
  <field name="Icon_size"></field>
</block>
<block type="oled_icons">
  <value name="POS_X">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value>
  <value name="POS_Y">
    <shadow type="math_number">
      <field name="NUM">20</field>
    </shadow>
  </value>
  <field name="Icon_size"></field>
</block>
<block type="oled_showBitmap">
  <value name="START_X">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value>
  <value name="START_Y">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value>
  <value name="WIDTH">
    <shadow type="math_number">
      <field name="NUM">128</field>
    </shadow>
  </value>
  <value name="HEIGHT">
    <shadow type="math_number">
      <field name="NUM">64</field>
    </shadow>
  </value>
  <value name="bitmap_name">
    <block type="text">
      <field name="TEXT">bitmap1</field>
    </block>
  </value>
</block>
<block type="oled_drawPixel">
  <value name="POS_X">
    <shadow type="math_number">
      <field name="NUM">64</field>
    </shadow>
  </value>
  <value name="POS_Y">
    <shadow type="math_number">
      <field name="NUM">32</field>
    </shadow>
  </value>
</block>
<block type="oled_drawLine">
  <value name="START_X">
    <shadow type="math_number">
      <field name="NUM">1</field>
    </shadow>
  </value>
  <value name="START_Y">
    <shadow type="math_number">
      <field name="NUM">1</field>
    </shadow>
  </value>
  <value name="END_X">
    <shadow type="math_number">
      <field name="NUM">15</field>
    </shadow>
  </value>
  <value name="END_Y">
    <shadow type="math_number">
      <field name="NUM">20</field>
    </shadow>
  </value>
</block>
<block type="oled_draw_Str_Line">
  <value name="START_X">
    <shadow type="math_number">
      <field name="NUM">1</field>
    </shadow>
  </value>
  <value name="START_Y">
    <shadow type="math_number">
      <field name="NUM">1</field>
    </shadow>
  </value>
  <value name="LENGTH">
    <shadow type="math_number">
      <field name="NUM">30</field>
    </shadow>
  </value>
</block>
<block type="oled_drawFrame">
  <value name="D0_X">
    <shadow type="math_number">
      <field name="NUM">1</field>
    </shadow>
  </value>
  <value name="D0_Y">
    <shadow type="math_number">
      <field name="NUM">1</field>
    </shadow>
  </value>
  <value name="WIDTH">
    <shadow type="math_number">
      <field name="NUM">10</field>
    </shadow>
  </value>
  <value name="HEIGHT">
    <shadow type="math_number">
      <field name="NUM">20</field>
    </shadow>
  </value>
</block>
<block type="oled_drawRFrame">
  <value name="D0_X">
    <shadow type="math_number">
      <field name="NUM">1</field>
    </shadow>
  </value>
  <value name="D0_Y">
    <shadow type="math_number">
      <field name="NUM">1</field>
    </shadow>
  </value>
  <value name="WIDTH">
    <shadow type="math_number">
      <field name="NUM">10</field>
    </shadow>
  </value>
  <value name="HEIGHT">
    <shadow type="math_number">
      <field name="NUM">20</field>
    </shadow>
  </value>
  <value name="RADIUS">
    <shadow type="math_number">
      <field name="NUM">3</field>
    </shadow>
  </value>
</block>
<block type="oled_drawCircle">
  <value name="D0_X">
    <shadow type="math_number">
      <field name="NUM">30</field>
    </shadow>
  </value>
  <value name="D0_Y">
    <shadow type="math_number">
      <field name="NUM">30</field>
    </shadow>
  </value>
  <value name="RADIUS">
    <shadow type="math_number">
      <field name="NUM">6</field>
    </shadow>
  </value>
</block>
<block type="oled_drawEllipse">
  <value name="D0_X">
    <shadow type="math_number">
      <field name="NUM">30</field>
    </shadow>
  </value>
  <value name="D0_Y">
    <shadow type="math_number">
      <field name="NUM">30</field>
    </shadow>
  </value>
  <value name="RADIUS_X">
    <shadow type="math_number">
      <field name="NUM">6</field>
    </shadow>
  </value>
  <value name="RADIUS_Y">
    <shadow type="math_number">
      <field name="NUM">15</field>
    </shadow>
  </value>
</block>
<block type="oled_drawTriangle">
  <value name="D0_X">
    <shadow type="math_number">
      <field name="NUM">14</field>
    </shadow>
  </value>
  <value name="D0_Y">
    <shadow type="math_number">
      <field name="NUM">55</field>
    </shadow>
  </value>
  <value name="D1_X">
    <shadow type="math_number">
      <field name="NUM">45</field>
    </shadow>
  </value>
  <value name="D1_Y">
    <shadow type="math_number">
      <field name="NUM">33</field>
    </shadow>
  </value>
  <value name="D2_X">
    <shadow type="math_number">
      <field name="NUM">8</field>
    </shadow>
  </value>
  <value name="D2_Y">
    <shadow type="math_number">
      <field name="NUM">43</field>
    </shadow>
  </value>
</block>
</category>
<category id="catMatrix" colour="180">
  <block type="MAX7219_init">
    <value name="PIN1">
      <shadow type="pins_MOSI">
      </shadow>
    </value>
    <value name="PIN2">
      <shadow type="pins_digital">
        <field name="PIN">9</field>
      </shadow>
    </value>
    <value name="PIN3">
      <shadow type="pins_SCK">
      </shadow>
    </value>
    <value name="hDisplays">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
    <value name="vDisplays">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
  </block>
  <block type="display_Matrix_DrawPixel">
    <value name="XVALUE">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
    <value name="YVALUE">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
    <value name="STAT">
      <shadow type="inout_highlow"></shadow>
    </value>
  </block>
  <block type="display_Max7219_Rotation">
    <value name="NO">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
  </block>
  <block type="display_Max7219_setPosition">
    <value name="NO">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
    <value name="X">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
    <value name="Y">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
  </block>
  <block type="display_Matrix_TEXT">
    <value name="TEXT">
      <shadow type="text">
        <field name="TEXT">Mixly</field>
      </shadow>
    </value>
    <value name="Speed">
      <shadow type="math_number">
        <field name="NUM">300</field>
      </shadow>
    </value>
  </block>
  <block type="display_Matrix_DisplayChar">
    <value name="NO">
      <shadow type="math_number">
        <field name="NUM">0</field>
      </shadow>
    </value>
    <value name="LEDArray">
      <block type="display_Matrix_LedArray"></block>
    </value>
  </block>
  <block type="Matrix_img">
  </block>
  <block type="display_Matrix_fillScreen">
  </block>
  <block type="display_Matrix_Brightness">
    <value name="Brightness">
      <shadow type="math_number">
        <field name="NUM">5</field>
      </shadow>
    </value>
  </block>
</category>
</category>
<category id="catGroup" colour="140">
  <block type="serialBT_Init">
    <value name="CONTENT">
      <shadow type="text">
        <field name="TEXT">ESP32BT</field>
      </shadow>
    </value>
    <next>
      <block type="serial_begin">
        <field name="serial_select">Serial</field>
        <value name="CONTENT">
          <shadow type="math_number">
            <field name="NUM">115200</field>
          </shadow>
        </value>
        <next>
          <block type="controls_if">
            <value name="IF0">
              <block type="serialBT_available">
              </block>
            </value>
            <statement name="DO0">
              <block type="serial_write">
                <field name="serial_select">Serial</field>
                <value name="CONTENT">
                  <block type="serialBT_read">
                  </block>
                </value>
              </block>
            </statement>
            <next>
              <block type="controls_if">
                <value name="IF0">
                  <block type="serial_available">
                    <field name="serial_select">Serial</field>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="serialBT_write">
                    <value name="CONTENT">
                      <block type="serial_parseInt_Float">
                        <field name="serial_select">Serial</field>
                        <field name="STAT">read</field>
                      </block>
                    </value>
                  </block>
                </statement>
                <next>
                  <block type="controls_delay">
                    <field name="UNIT">delay</field>
                    <value name="DELAY_TIME">
                      <shadow type="math_number">
                        <field name="NUM">20</field>
                      </shadow>
                    </value>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </next>
      </block>
    </next>
  </block>
  <block type="i2c_master_writer"></block>
  <block type="i2c_master_reader"></block>
  <block type="i2c_slave_onreceive">
    <value name="device">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
  </block>
  <block type="i2c_master_reader2"></block>
  <block type="i2c_available"></block>
  <block type="i2c_howmany"></block>
  <block type="i2c_slave_onrequest">
    <value name="device">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
  </block>
  <block type="i2c_slave_write">
    <value name="value">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
  </block>
  <block type="i2c_slave_write_array">
    <value name="array">
      <shadow type="math_number">
        <field name="NUM">array</field>
      </shadow>
    </value>
    <value name="length">
      <shadow type="math_number">
        <field name="NUM">1</field>
      </shadow>
    </value>
  </block>
  <!--   <block type="spi_transfer">
      <value name="pin">
        <shadow type="pins_digital"></shadow>
      </value>
      <value name="value">
        <shadow type="math_number">
          <field name="NUM">0</field>
        </shadow>
      </value>
    </block> -->
    <block type="MFRC522_init">
      <value name="PIN_SDA">
        <shadow type="pins_digital">
          <field name="PIN">33</field>
        </shadow>
      </value>
      <value name="PIN_RST">
        <shadow type="pins_digital">
          <field name="PIN">32</field>
        </shadow>
      </value>
    </block>
    <block type="MFRC522_IsNewCard">
    </block>
    <block type="MFRC522_ReadCardUID">
    </block>
    <block type="MFRC522_WriteCard">
      <value name="block">
        <shadow type="math_number">
          <field name="NUM">1</field>
        </shadow>
      </value>
      <value name="buffer">
        <shadow type="math_number">
          <field name="NUM">mylist</field>
        </shadow>
      </value>
      <value name="length">
        <shadow type="math_number">
          <field name="NUM">16</field>
        </shadow>
      </value>
    </block>
    <block type="MFRC522_ReadCard">
      <value name="block">
        <shadow type="math_number">
          <field name="NUM">1</field>
        </shadow>
      </value>
      <value name="buffer">
        <shadow type="math_number">
          <field name="NUM">mylist</field>
        </shadow>
      </value>
      <value name="length">
        <shadow type="math_number">
          <field name="NUM">16</field>
        </shadow>
      </value>
    </block>
  </category>
  <category id="catStorage" colour="0">
    <category id="catStorageSD" colour="0">
      <block type="store_sd_init">
        <value name="PIN_MOSI">
          <shadow type="pins_MOSI">
          </shadow>
        </value>
        <value name="PIN_MISO">
          <shadow type="pins_MISO">
          </shadow>
        </value>
        <value name="PIN_SCK">
          <shadow type="pins_SCK">
          </shadow>
        </value>
        <value name="PIN_CS">
          <shadow type="pins_digital">
          </shadow>
        </value>
      </block>
      <block type="sd_card_type"> </block>
      <block type="sd_card_root_files"> </block>
      <block type="sd_volume"></block>
      <block type="sd_exist"> </block>
      <block type="sd_DelFile"> </block>
      <block type="sd_read"> </block>
      <block type="store_sd_write">
        <field name="FILE">fileName.txt</field>
        <value name="DATA">
         <shadow type="text">
          <field name="TEXT">hello world</field>
        </shadow>
      </value>
      <value name="NEWLINE">
       <shadow type="logic_boolean">
        <field name="BOOL">TRUE</field>
      </shadow>
    </value>
  </block>
</category>
<category id="catStorageSPIFFS" colour="0">
  <block type="initialize_spiffs"> 
  </block>
  <block type="spiffs_open_file">
    <value name="file_var">
      <shadow type="text">
        <field name="TEXT">myFile</field>
      </shadow>
    </value>
    <value name="file_path">
      <shadow type="text">
        <field name="TEXT">/fileName.txt</field>
      </shadow>
    </value>
  </block>
  <block type="spiffs_close_file">
    <value name="file_var">
      <shadow type="text">
        <field name="TEXT">myFile</field>
      </shadow>
    </value>
  </block>
  <block type="spiffs_write_data">
    <value name="file_var">
      <shadow type="text">
       <field name="TEXT">myFile</field>
     </shadow>
   </value>
   <value name="data">
    <shadow type="text">
     <field name="TEXT">hello</field>
   </shadow>
 </value>
</block>
<block type="spiffs_read_available">
  <value name="file_var">
    <shadow type="text">
      <field name="TEXT">myFile</field>
    </shadow>
  </value>
</block>
<block type="spiffs_read_data">
 <value name="file_var">
  <shadow type="text">
    <field name="TEXT">myFile</field>
  </shadow>
</value>
</block>
<block type="spiffs_file_size">
  <value name="file_var">
    <shadow type="text">
     <field name="TEXT">myFile</field>
   </shadow>
 </value>
</block>
<block type="spiffs_delete_file">
  <value name="file_path">
    <shadow type="text">
     <field name="TEXT">/fileName.txt</field>
   </shadow>
 </value>
</block>
</category>
<category id="catStorageEEPROM" colour="0">
  <block type="store_eeprom_put">
    <value name="ADDRESS">
      <shadow type="math_number">
        <field name="NUM">0</field>
      </shadow>
    </value>
    <value name="DATA">
      <shadow type="math_number">
        <field name="NUM">0</field>
      </shadow>
    </value>
  </block>
  <block type="store_eeprom_get">
    <value name="ADDRESS">
      <shadow type="math_number">
        <field name="NUM">0</field>
      </shadow>
    </value>
    <value name="DATA">
      <shadow type="math_number">
        <field name="NUM">item</field>
      </shadow>
    </value>
  </block>
</category>
</category>
<category id="catNetwork" colour="0">
  <category id="catWIFI" colour="0">
    <block type="WIFI_info">
      <value name="SSID">
        <shadow type="text">
          <field name="TEXT">ssid</field>
        </shadow>
      </value>
      <value name="PWD">
        <shadow type="text">
          <field name="TEXT">password</field>
        </shadow>
      </value>
    </block>
    <block type="network_wifi_connect">
    </block>
    <block type="network_get_connect">
    </block>
    <block type="NTP_server">
      <value name="server_add">
        <shadow type="text">
          <field name="TEXT">ntp1.aliyun.com</field>
        </shadow>
      </value>
      <value name="timeZone">
        <shadow type="math_number">
          <field name="NUM">8</field>
        </shadow>
      </value>
      <value name="Interval">
        <shadow type="math_number">
          <field name="NUM">600</field>
        </shadow>
      </value>
    </block>
    <block type="NTP_server_get_time"></block>
    <block type="esp_now_send" >
      <value name="mac">
        <block type="text" >
          <field name="TEXT">30:AE:A4:58:9D:7C</field>
        </block>
      </value>
      <value name="data">
        <block type="text_join" >
          <value name="A">
            <shadow type="text" >
              <field name="TEXT">random_</field>
            </shadow>
          </value>
          <value name="B">
            <shadow type="text" >
              <field name="TEXT">Mixly</field>
            </shadow>
            <block type="math_random_int">
              <value name="FROM">
                <shadow type="math_number">
                  <field name="NUM">1</field>
                </shadow>
              </value>
              <value name="TO">
                <shadow type="math_number">
                  <field name="NUM">100</field>
                </shadow>
              </value>
            </block>
          </value>
        </block>
      </value>
      <statement name="success">
        <block type="serial_println">
          <field name="serial_select">Serial</field>
          <value name="CONTENT">
            <block type="text">
              <field name="TEXT">Sent with success</field>
            </block>
          </value>
        </block>
      </statement>
      <statement name="failure">
        <block type="serial_println">
          <field name="serial_select">Serial</field>
          <value name="CONTENT">
            <block type="text">
              <field name="TEXT">Error sending the data</field>
            </block>
          </value>
        </block>
      </statement>
    </block>
    <block type="esp_now_receive">
      <statement name="receive_data">
        <block type="serial_println" >
          <field name="serial_select">Serial</field>
          <value name="CONTENT">
            <block type="variables_get" >
              <field name="VAR">mydata</field>
            </block>
          </value>
        </block>
      </statement>
    </block>
    <block type="http_get">
      <value name="api">
        <shadow type="math_number">
          <field name="NUM">http://jsonplaceholder.typicode.com/users/1</field>
        </shadow>
        <block type="text">
          <field name="TEXT">http://jsonplaceholder.typicode.com/posts/1</field>
        </block>
      </value>
      <statement name="success">
        <block type="serial_println">
          <field name="serial_select">Serial</field>
          <value name="CONTENT">
            <block type="variables_get">
              <field name="VAR">Request_result</field>
            </block>
          </value>
        </block>
      </statement>
      <statement name="failure">
        <block type="serial_println">
          <field name="serial_select">Serial</field>
          <value name="CONTENT">
            <block type="text">
              <field name="TEXT">Invalid response!</field>
            </block>
          </value>
        </block>
      </statement>
    </block>
    <block type="WIFI_ap_or_sta">
      <value name="SSID">
       <shadow type="text">
        <field name="TEXT">WIFI-SSID</field>
      </shadow>
    </value>
    <value name="PSK">
     <shadow type="text">
      <field name="TEXT">WIFI-PSK</field>
    </shadow>
  </value>
  <value name="IP1">
   <shadow type="math_number">
    <field name="NUM">192.168.43.214</field>
  </shadow>
</value>
<value name="IP2">
 <shadow type="math_number">
  <field name="NUM">192.168.43.197</field>
</shadow>
</value>
<value name="IP">
 <shadow type="math_number">
  <field name="NUM">192.168.43.255</field>
</shadow>
</value>
<value name="duankou">
 <shadow type="math_number">
  <field name="NUM">8080</field>
</shadow>
</value>
</block>
<block type="WIFI_ap_and_sta">
  <value name="SSID1">
   <shadow type="text">
    <field name="TEXT">WIFI-STA-SSID</field>
  </shadow>
</value>
<value name="PSK1">
 <shadow type="text">
  <field name="TEXT">WIFI-STA-PSK</field>
</shadow>
</value>
<value name="SSID2">
 <shadow type="text">
  <field name="TEXT">WIFI-AP-SSID</field>
</shadow>
</value>
<value name="PSK2">
 <shadow type="text">
  <field name="TEXT">WIFI-AP-PSK</field>
</shadow>
</value>
<value name="IP1">
 <shadow type="math_number">
  <field name="NUM">192.168.4.2</field>
</shadow>
</value>
<value name="IP2">
 <shadow type="math_number">
  <field name="NUM">192.168.4.3</field>
</shadow>
</value>
<value name="IP">
 <shadow type="math_number">
  <field name="NUM">192.168.4.255</field>
</shadow>
</value>
<value name="duankou">
 <shadow type="math_number">
  <field name="NUM">8080</field>
</shadow>
</value>
</block>
<block type="WIFI_incomingPacket">
  <value name="input_data">
    <shadow type="variables_get">
      <field name="VAR">COM</field>
    </shadow>
  </value>
</block>
<block type="WIFI_send_data">
  <value name="data">
    <shadow type="text">
      <field name="TEXT">hello</field>
    </shadow>
  </value>
</block>
</category>
<category id="catBlynk" name="catBlynk" colour="160">
  <block type="blynk_server">
    <value name="server_add">
      <shadow type="text">
        <field name="TEXT">blynk.mixly.org</field>
      </shadow>
    </value>
    <value name="auth_key">
      <shadow type="text">
        <field name="TEXT">d9efdd0413ec4b74ab0057a0b8675654</field>n</shadow>
      </value>
      <value name="wifi_ssid">
        <shadow type="text">
          <<<<<<< HEAD
          <field name="TEXT">blynk.mixly.org</field>
          =======
          <field name="TEXT">wifi-ssid</field>
          >>>>>>> 99dec2be3373b98e44a30ad45c21ce3ebf67bbc0
        </shadow>
      </value>
      <value name="wifi_pass">
        <shadow type="text">
          <<<<<<< HEAD
          <field name="TEXT">d9efdd0413ec4b74ab0057a0b8675654</field>n</shadow>
        </value>
        <value name="wifi_ssid">
          <shadow type="text">
            <field name="TEXT">wifi-ssid</field>
          </shadow>
        </value>
        <value name="wifi_pass">
          <shadow type="text">
            <field name="TEXT">wifi-pass</field>
          </shadow>
        </value>
      </block>
      <block type="Blynk_connect_state"></block>
      <block type="blynk_smartconfig">
        <value name="server_add">
          <shadow type="text">
            <field name="TEXT">blynk.mixly.org</field>
          </shadow>
        </value>
        <value name="auth_key">
          <shadow type="text">
            <field name="TEXT">d9efdd0413ec4b74ab0057a0b8675654</field>
          </shadow>
        </value>
      </block>
      <block type="blynk_esp32_ble">
        <value name="auth">
          <shadow type="text">
            <field name="TEXT">59d948d79fe642aab95c1577b1ad419d</field>
          </shadow>
        </value>
        <value name="name">
          <shadow type="text">
            <field name="TEXT">Blynk</field>
          </shadow>
        </value>
      </block>
      <block type="blynk_esp32_Bluetooth">
        <value name="auth">
          <shadow type="text">
            <field name="TEXT">59d948d79fe642aab95c1577b1ad419d</field>
          </shadow>
        </value>
        <value name="name">
          <shadow type="text">
            <field name="TEXT">Blynk</field>
          </shadow>
        </value>
      </block>
      <block type="blynk_iot_get_data">
        <mutation>
          <arg name="vpin_value" vartype="int"></arg>
        </mutation>
        <field name="Vpin">V0</field>
        <statement name="STACK">
          <block type="serial_println">
            <field name="serial_select">Serial</field>
            <value name="CONTENT">
              <block type="variables_get">
                <field name="VAR">vpin_value</field>
              </block>
            </value>
          </block>
        </statement>
      </block>
      <block type="Blynk_iot_timer">
        <mutation>
          <arg name="vpin_value" vartype="int"></arg>
        </mutation>
        <field name="Vpin">V0</field>
        <value name="TIME">
          <shadow type="math_number">
            <field name="NUM">1000</field>
          </shadow>
        </value>
        <statement name="DO">
          <block type="blynk_iot_push_data">
            <field name="Vpin">V0</field>
            <value name="data">
              <shadow type="math_number">
                <field name="NUM">0</field>
              </shadow>
            </value>
          </block>
        </statement>
      </block>
      <block type="blynk_iot_WidgetLED_COLOR">    
        <value name="COLOR">
          <shadow type="math_number">
            <field name="NUM">
            </field>
          </shadow>
          <block type="RGB_color_seclet" >
           <field name="COLOR">#ff0000</field>
         </block>
       </value>
       <value name="STAT">
        <shadow type="inout_highlow"></shadow>
      </shadow>
    </value>
  </block>
  <block type="Blynk_connect_state"></block>
  <block type="blynk_smartconfig">
    <value name="server_add">
      <shadow type="text">
        <field name="TEXT">blynk.mixly.org</field>
      </shadow>
    </value>
    <value name="auth_key">
      <shadow type="text">
        <field name="TEXT">d9efdd0413ec4b74ab0057a0b8675654</field>
      </shadow>
    </value>
  </block>
  <block type="blynk_esp32_ble">
    <value name="auth">
      <shadow type="text">
        <field name="TEXT">59d948d79fe642aab95c1577b1ad419d</field>
      </shadow>
    </value>
    <value name="name">
      <shadow type="text">
        <field name="TEXT">Blynk</field>
      </shadow>
    </value>
  </block>
  <block type="blynk_esp32_Bluetooth">
    <value name="auth">
      <shadow type="text">
        <field name="TEXT">59d948d79fe642aab95c1577b1ad419d</field>
      </shadow>
    </value>
    <value name="name">
      <shadow type="text">
        <field name="TEXT">Blynk</field>
      </shadow>
    </value>
  </block>
  <block type="blynk_iot_get_data">
    <mutation>
      <arg name="vpin_value" vartype="int"></arg>
    </mutation>
    <field name="Vpin">V0</field>
    <statement name="STACK">
      <block type="serial_println">
        <field name="serial_select">Serial</field>
        <value name="CONTENT">
          <block type="variables_get">
            <field name="VAR">vpin_value</field>
          </block>
        </value>
      </block>
    </statement>
  </block>
  <block type="Blynk_iot_timer">
    <mutation>
      <arg name="vpin_value" vartype="int"></arg>
    </mutation>
    <field name="Vpin">V0</field>
    <value name="TIME">
      <shadow type="math_number">
        <field name="NUM">1000</field>
      </shadow>
    </value>
    <statement name="DO">
      <block type="blynk_iot_push_data">
        <field name="Vpin">V0</field>
        <value name="data">
          <shadow type="math_number">
            <field name="NUM">0</field>
          </shadow>
        </value>
      </block>
    </statement>
  </block>
  <block type="blynk_iot_WidgetLED_COLOR">    
    <value name="COLOR">
      <shadow type="math_number">
        <field name="NUM">
        </field>
      </shadow>
      <block type="RGB_color_seclet" >
       <field name="COLOR">#ff0000</field>
     </block>
   </value>
   <value name="STAT">
    <shadow type="inout_highlow"></shadow>
  </value>
</block>
<block type="blynk_iot_WidgetLED_VALUE">
  <value name="NUM">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value>
  <value name="COLOR">
    <shadow type="math_number">
      <field name="NUM">
      </field>
    </shadow>
    <block type="RGB_color_seclet" >
      <field name="COLOR">#ff0000</field>
    </block>
  </value>
</block>
<block type="blynk_email">
  <value name="email_add">
    <shadow type="text">
      <field name="TEXT">example@blynk.cc</field>
    </shadow>
  </value>
  <value name="Subject">
    <shadow type="text">
      <field name="TEXT">Subject</field>
    </shadow>
  </value>
  <value name="content">
    <shadow type="text">
      <field name="TEXT">Content</field>
    </shadow>
  </value>
</block>
<block type="blynk_notify">
  <value name="content">
    <shadow type="text">
      <field name="TEXT">Notify</field>
    </shadow>
  </value>
</block>
<block type="blynk_iot_terminal_get">
  <field name="Vpin">V0</field>
  <statement name="DO">
    <block type="serial_println">
      <field name="serial_select">Serial</field>
      <value name="CONTENT">
        <block type="variables_get">
          <field name="VAR">terminal_text</field>
        </block>
      </value>
    </block>
  </statement>
</block>
<block type="blynk_terminal_clear">
</block>
<block type="blynk_terminal">
  <value name="content">
    <shadow type="text">
      <field name="TEXT">Hello,World!</field>
    </shadow>
  </value>
</block>
<block type="blynk_time_input_1">
  <field name="Vpin">V0</field>
  <statement name="DO">
    <block type="serial_println">
      <field name="serial_select">Serial</field>
      <value name="CONTENT">
        <block type="variables_get">
          <field name="VAR">hour</field>
        </block>
      </value>
      <next>
        <block type="serial_println">
          <field name="serial_select">Serial</field>
          <value name="CONTENT">
            <block type="variables_get">
              <field name="VAR">minute</field>
            </block>
          </value>
          <next>
            <block type="serial_println">
              <field name="serial_select">Serial</field>
              <value name="CONTENT">
                <block type="variables_get">
                  <field name="VAR">second</field>
                </block>
              </value>
              <next>
              </next>
            </block>
          </next>
        </block>
      </next>
    </block>
  </statement>
</block>
<block type="blynk_lcd">
  <field name="Vpin">V0</field>
  <value name="x">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value>
  <value name="y">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value>
  <value name="value">
    <shadow type="math_number">
      <field name="NUM">923</field>
    </shadow>
  </value>
</block>
<block type="blynk_lcd_clear">
</block>
<block type="blynk_videourl">
  <value name="url">
    <shadow type="text">
      <field name="TEXT">http://yourvideostream.url</field>
    </shadow>
  </value>
</block>
<block type="blynk_table_add_data">
 <value name="name">
   <shadow type="text">
    <field name="TEXT">Test row</field>
  </shadow>
</value>
<value name="data">
 <shadow type="text">
  <field name="TEXT">hello</field>
</shadow>
</value>
</block>

<block type="blynk_table_click">
  <field name="Vpin">V0</field>
  <statement name="function">
    <block type="serial_println">
      <field name="serial_select">Serial</field>
      <value name="CONTENT">
        <block type="variables_get">
          <field name="VAR">index</field>
        </block>
      </value>
      <next>
        <block type="serial_println">
          <field name="serial_select">Serial</field>
          <value name="CONTENT">
            <block type="variables_get">
              <field name="VAR">selected</field>
            </block>
          </value>
        </block>
      </next>
    </block>
  </statement>
</block>

<block type="blynk_table_order">
  <field name="Vpin">V0</field>
  <statement name="function">
    <block type="serial_println">
      <field name="serial_select">Serial</field>
      <value name="CONTENT">
        <block type="variables_get">
          <field name="VAR">indexFrom</field>
        </block>
      </value>
      <next>
        <block type="serial_println">
          <field name="serial_select">Serial</field>
          <value name="CONTENT">
            <block type="variables_get">
              <field name="VAR">indexTo</field>
            </block>
          </value>
        </block>
      </next>
    </block>
  </statement>
</block>
<block type="blynk_table"> 
  <value name="id">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value> 
  <value name="mingcheng">
    <shadow type="text">
      <field name="TEXT">Name</field>
    </shadow>
  </value>
  <value name="shujv">
    <shadow type="text">
      <field name="TEXT">John</field>
    </shadow>
  </value>
</block>
<block type="blynk_table_update"> 
  <value name="id">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value> 
  <value name="mingcheng">
    <shadow type="text">
      <field name="TEXT">Name</field>
    </shadow>
  </value>
  <value name="shujv">
    <shadow type="text">
      <field name="TEXT">John</field>
    </shadow>
  </value>
</block>
<block type="blynk_table_highlight"> 
  <value name="id">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value> 
</block>
<block type="blynk_table_select">
  <value name="id">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value> 
</block>
<block type="blynk_table_unselect"> 
  <value name="id">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value> 
</block>
<block type="blynk_table_cleardata"></block>
<block type="Blynk_iot_CONNECT_STATE" >
  <field name="state">BLYNK_CONNECTED</field>
  <statement name="DO">
    <block type="blynk_bridge_auth">
      <field name="Vpin">V0</field>
      <value name="auth">
        <shadow type="text">
          <field name="TEXT">n2KlfPGDyjDBluNi1G9DG5OEjqDT996L</field>
        </shadow>
      </value>
    </block>
  </statement>
</block>
<block type="blynk_bridge_digitalWrite">
  <value name="PIN">
    <shadow type="pins_digital"></shadow>
  </value>
  <value name="STAT">
    <shadow type="inout_highlow"></shadow>
  </value>
</block>
<block type="blynk_bridge_AnaloglWrite">
  <value name="PIN">
    <shadow type="pins_pwm"></shadow>
  </value>
  <value name="NUM">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value>
</block>
<block type="blynk_bridge_VPin">
  <value name="NUM">
    <shadow type="math_number">
      <field name="NUM">0</field>
    </shadow>
  </value>
</block>
<block type="Blynk_iot_CONNECT_STATE" >
  <field name="state">BLYNK_CONNECTED</field>
  <statement name="DO">
    <block type="blynk_WidgetRTC_init">
      <value name="NUM">
        <shadow type="math_number">
          <field name="NUM">10</field>
        </shadow>
      </value>
    </block>
  </statement>
</block>
<block type="blynk_WidgetRTC_get_time">
</block>
<block type="blynk_iot_playmusic">
  <field name="Vpin">V0</field>
  <statement name="DO">
    <block type="variables_declare">
      <field name="VAR">action</field>
      <field name="TYPE">String</field>
      <value name="VALUE">
        <block type="text">
          <field name="TEXT"></field>
        </block>
      </value>
      <next>
        <block type="controls_if">
          <mutation elseif="3"></mutation>
          <value name="IF0">
            <block type="logic_compare">
              <field name="OP">EQ</field>
              <value name="A">
                <block type="variables_get">
                  <field name="VAR">action</field>
                </block>
              </value>
              <value name="B">
                <block type="text">
                  <field name="TEXT">play</field>
                </block>
              </value>
            </block>
          </value>
          <statement name="DO0">
            <block type="GD5800_MP3_CONTROL">
              <field name="CONTROL_TYPE">play();</field>
              <value name="RXPIN">
                <shadow type="pins_digital">
                  <field name="PIN">4</field>
                </shadow>
              </value>
              <value name="TXPIN">
                <shadow type="pins_digital">
                  <field name="PIN">5</field>
                </shadow>
              </value>
            </block>
          </statement>
          <value name="IF1">
            <block type="logic_compare">
              <field name="OP">EQ</field>
              <value name="A">
                <block type="variables_get">
                  <field name="VAR">action</field>
                </block>
              </value>
              <value name="B">
                <block type="text">
                  <field name="TEXT">stop</field>
                </block>
              </value>
            </block>
          </value>
          <statement name="DO1">
            <block type="GD5800_MP3_CONTROL">
              <field name="CONTROL_TYPE">pause();</field>
              <value name="RXPIN">
                <shadow type="pins_digital">
                  <field name="PIN">4</field>
                </shadow>
              </value>
              <value name="TXPIN">
                <shadow type="pins_digital">
                  <field name="PIN">5</field>
                </shadow>
              </value>
            </block>
          </statement>
          <value name="IF2">
            <block type="logic_compare">
              <field name="OP">EQ</field>
              <value name="A">
                <block type="variables_get">
                  <field name="VAR">action</field>
                </block>
              </value>
              <value name="B">
                <block type="text">
                  <field name="TEXT">next</field>
                </block>
              </value>
            </block>
          </value>
          <statement name="DO2">
            <block type="GD5800_MP3_CONTROL">
              <field name="CONTROL_TYPE">next();</field>
              <value name="RXPIN">
                <shadow type="pins_digital">
                  <field name="PIN">4</field>
                </shadow>
              </value>
              <value name="TXPIN">
                <shadow type="pins_digital">
                  <field name="PIN">5</field>
                </shadow>
              </value>
            </block>
          </statement>
          <value name="IF3">
            <block type="logic_compare">
              <field name="OP">EQ</field>
              <value name="A">
                <block type="variables_get">
                  <field name="VAR">action</field>
                </block>
              </value>
              <value name="B">
                <block type="text">
                  <field name="TEXT">prev</field>
                </block>
              </value>
            </block>
          </value>
          <statement name="DO3">
            <block type="GD5800_MP3_CONTROL">
              <field name="CONTROL_TYPE">prev();</field>
              <value name="RXPIN">
                <shadow type="pins_digital">
                  <field name="PIN">4</field>
                </shadow>
              </value>
              <value name="TXPIN">
                <shadow type="pins_digital">
                  <field name="PIN">5</field>
                </shadow>
              </value>
            </block>
          </statement>
        </block>
      </next>
    </block>
  </statement>
</block>
<block type="blynk_light">
  <field name="Vpin">V0</field>
  <statement name="DO">
    <block type="serial_println">
      <field name="serial_select">Serial</field>
      <value name="CONTENT">
        <block type="variables_get">
          <field name="VAR">lx</field>
        </block>
      </value>
    </block>
  </statement>
</block>
<block type="blynk_gravity">
  <field name="Vpin">V0</field>
  <statement name="DO">
    <block type="serial_println">
      <field name="serial_select">Serial</field>
      <value name="CONTENT">
        <block type="variables_get">
          <field name="VAR">x</field>
        </block>
      </value>
      <next>
        <block type="serial_println">
          <field name="serial_select">Serial</field>
          <value name="CONTENT">
            <block type="variables_get">
              <field name="VAR">y</field>
            </block>
          </value>
          <next>
            <block type="serial_println">
              <field name="serial_select">Serial</field>
              <value name="CONTENT">
                <block type="variables_get">
                  <field name="VAR">z</field>
                </block>
              </value>
            </block>
          </next>
        </block>
      </next>
    </block>
  </statement>
</block>
<block type="blynk_acc">
  <field name="Vpin">V0</field>
  <statement name="DO">
    <block type="serial_println">
      <field name="serial_select">Serial</field>
      <value name="CONTENT">
        <block type="variables_get">
          <field name="VAR">x</field>
        </block>
      </value>
      <next>
        <block type="serial_println">
          <field name="serial_select">Serial</field>
          <value name="CONTENT">
            <block type="variables_get">
              <field name="VAR">y</field>
            </block>
          </value>
          <next>
            <block type="serial_println">
              <field name="serial_select">Serial</field>
              <value name="CONTENT">
                <block type="variables_get">
                  <field name="VAR">z</field>
                </block>
              </value>
            </block>
          </next>
        </block>
      </next>
    </block>
  </statement>
</block>
<block type="Blynk_iot_CONNECT_STATE">
  <statement name="DO"></statement>
</block>
<block type="Blynk_iot_BLYNK_syncAll">
</block>
<block type="blynk_iot_syncVirtual">
  <field name="Vpin">V0</field>
</block>
</category>
<category id="catMQTT" colour="0">
  <block type="MQTT_server">
    <value name="server_add">
      <shadow type="text">
        <field name="TEXT">192.168.1.101</field>
      </shadow>
    </value>
    <value name="server_port">
      <shadow type="math_number">
        <field name="NUM">1883</field>
      </shadow>
    </value>
    <value name="Client_ID">
      <shadow type="text">
        <field name="TEXT">ID</field>
      </shadow>
    </value>
    <value name="IOT_ID">
      <shadow type="text">
        <field name="TEXT">siot</field>
      </shadow>
    </value>
    <value name="IOT_PWD">
      <shadow type="text">
        <field name="TEXT">dfrobot</field>
      </shadow>
    </value>
  </block>
  <block type="MQTT_publish">
    <value name="data">
      <shadow type="math_number">
        <field name="NUM">120</field>
      </shadow>
    </value>
    <value name="Topic">
      <shadow type="text">
        <field name="TEXT">Topic_0</field>
      </shadow>
    </value>
  </block>
  <block type="MQTT_subscribe">
    <value name="IF0">
      <block type="math_number">
        <field name="NUM">Topic</field>
      </block>
    </value>
    <statement name="DO0">
      <block type="serial_println">
        <field name="serial_select">Serial</field>
        <value name="CONTENT">
          <block type="MQTT_subscribe_value">
            <value name="Topic">
              <shadow type="text">
                <field name="TEXT">Topic</field>
              </shadow>
            </value>
          </block>
        </value>
      </block>
    </statement>
  </block>
</category>
</category>
<sep></sep>
<category id="catFactory" name="catFactory" colour="#777777">
  <block type="factory_include"></block>
  <block type="factory_function_noreturn"></block>
  <block type="factory_function_return"></block>
  <block type="factory_declare"></block>
  <block type="factory_declare2"></block>
  <block type="factory_define"></block>
  <block type="factory_callMethod_noreturn"></block>
  <block type="factory_callMethod_return"></block>
  <block type="factory_static_method_noreturn"></block>
  <block type="factory_static_method_return"></block>
  <block type="factory_block"></block>
  <block type="factory_block_return"></block>
  <block type="factory_block_with_textarea"></block>
  <block type="factory_block_return_with_textarea"></block>
</category>
<category id="catTools" name="catTools" colour="#555555">
  <block type="IICSCAN"></block>
  <block type="factory_notes"></block>
  <block type="folding_block"></block>
  <block type="handbit_A"></block>
  <block type="handbit_B"></block>
  <block type="handbit_pin_A"></block>
  <block type="handbit_pin_B"></block>
</category>
</xml>
<script>
  if (company_block != null) {
    $('#toolbox').append(company_block);
  }
  if (myblock != null) {
    $('#toolbox').append(myblock);
  }
</script>
</body>
</html>